Commonly Used Operators (map, flatMap, filter, reduce)

Java Technologies - আরএক্সজাভা (RxJava) Operators এর ব্যবহার |
140
140

RxJava-তে অপারেটর হলো ডেটা স্ট্রিম ম্যানিপুলেট করার টুল। এগুলো ডেটা প্রসেসিং সহজ করে এবং রিয়েক্টিভ প্রোগ্রামিংয়ে অনেক ক্ষমতা যোগ করে। নিচে কিছু গুরুত্বপূর্ণ অপারেটরের ব্যাখ্যা এবং উদাহরণ দেয়া হলো।


1. map অপারেটর

  • ব্যবহার: একটি ডেটাকে অন্য ফর্মে রূপান্তর করতে।
  • উদাহরণ: একটি সংখ্যা ডাবল করা।
import io.reactivex.rxjava3.core.Observable;

public class MapExample {
    public static void main(String[] args) {
        Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5);

        numbers.map(number -> number * 2)
               .subscribe(result -> System.out.println("Mapped value: " + result));
    }
}

আউটপুট:

Mapped value: 2  
Mapped value: 4  
Mapped value: 6  
Mapped value: 8  
Mapped value: 10  

2. flatMap অপারেটর

  • ব্যবহার: এক Observable কে আরও একাধিক Observable-এ রূপান্তর করতে।
  • উদাহরণ: একটি ডেটা লিস্ট তৈরি করা এবং তা ফ্ল্যাট করা।
import io.reactivex.rxjava3.core.Observable;

public class FlatMapExample {
    public static void main(String[] args) {
        Observable<String> users = Observable.just("User1", "User2");

        users.flatMap(user -> Observable.just(user + " - Data1", user + " - Data2"))
             .subscribe(data -> System.out.println("FlatMapped value: " + data));
    }
}

আউটপুট:

FlatMapped value: User1 - Data1  
FlatMapped value: User1 - Data2  
FlatMapped value: User2 - Data1  
FlatMapped value: User2 - Data2  

3. filter অপারেটর

  • ব্যবহার: নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করতে।
  • উদাহরণ: শুধু জোড় সংখ্যাগুলো বের করা।
import io.reactivex.rxjava3.core.Observable;

public class FilterExample {
    public static void main(String[] args) {
        Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5, 6);

        numbers.filter(number -> number % 2 == 0)
               .subscribe(result -> System.out.println("Filtered value: " + result));
    }
}

আউটপুট:

Filtered value: 2  
Filtered value: 4  
Filtered value: 6  

4. reduce অপারেটর

  • ব্যবহার: ডেটা স্ট্রিমকে একক ফলাফলে কমিয়ে আনতে।
  • উদাহরণ: সব সংখ্যার যোগফল বের করা।
import io.reactivex.rxjava3.core.Observable;

public class ReduceExample {
    public static void main(String[] args) {
        Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5);

        numbers.reduce((sum, number) -> sum + number)
               .subscribe(result -> System.out.println("Reduced value: " + result));
    }
}

আউটপুট:

Reduced value: 15  

সব অপারেটরের ব্যবহার সংক্ষেপে

অপারেটরব্যবহারকাজ
mapডেটা রূপান্তরডেটার প্রতিটি উপাদানের উপর ফাংশন প্রয়োগ।
flatMapডেটা ফ্ল্যাট করাএক Observable থেকে একাধিক Observable তৈরি।
filterশর্ত অনুযায়ী ফিল্টারনির্দিষ্ট শর্তে মিল রেখে ডেটা নির্বাচন।
reduceডেটা কম্পাইল করাসমস্ত ডেটা একক ফলাফলে রূপান্তর।

সংক্ষিপ্ত টিপস:

  1. map এবং flatMap খুবই শক্তিশালী, তবে ভুল ব্যবহারে কমপ্লেক্সিটি বাড়তে পারে।
  2. filter ব্যবহার করে শুধুমাত্র প্রয়োজনীয় ডেটা স্ট্রিমে রাখা সহজ।
  3. reduce বড় ডেটা প্রসেসিংয়ের জন্য ভালো তবে এটি শুধুমাত্র Finite Observable-এর জন্য কাজ করে।

আপনার যদি এই বিষয়ে আরও কিছু জানার প্রয়োজন হয়, বলুন! 😊

Content added By
Promotion